package JET.physics;

/**
 *
 * @author 057Ry
 */
public enum CollisionType
{
    /**
     * Nastapila penetracja na skutek zdezenia w trakcie ruchu.
     * ex. dla mass2d i boundSphere -> droga masy przecina krawedz okregu BS.
     */
    CRASH,

    /**
     * Nastapila jedynie penetracja.
     * ex. dla mass2d i boundSphere -> masa znalazla sie wew okregu BS,
     *     ale nie nastapilo przeciecie drogi masy z krawedzia okregu BS.
     *     Przypadek taki jest mozliwy, gdy 2 BS nachodza na siebie i czasteczka
     *     odbita od 1 BS, na skutek korekcji polozenia wzgledem 1 BS, znalazla sie
     *     wewnatrz drugiej BS. W powyzszym przyp. nie jest sledzona droga masy i
     *     dlatego nie mozna odnotowac kolizji typu CRASH...
     */
    PENETRATION,

    /**
     * Przypadek gdy kawalek brzegu jednego obiektu SpringBody, przecina jedynie
     * jedna sciane drugiego obiektu SpringBody. W takim przyp. trzeba zdezenie
     * obsluzyc w inny sposob niz standadrowa penetracje, w ktorej przecinaja sie
     * dwa kawalki brzegow obiektow SpringBody ( czyli jednej sciany nie traktujemy jak brzegu ).
     */
    PENETRATION_SPRINGBODY_SINGLE_WALL,

    /**
     * Obiekt znajduje sie poza glownym obszarem symulacji.
     * Glowny obszar symulacji to prostokat, wktorym umieszczone sa wszystkie obiekty.
     */
    OUTOFBOUND_LEFT,
    OUTOFBOUND_RIGHT,
    OUTOFBOUND_TOP,
    OUTOFBOUND_BOTTOM
}
